package com.boarsoft.boar.soagov.svc;

import java.util.List;

import com.boarsoft.boar.entity.AppInfo;
import com.boarsoft.boar.soagov.entity.AppSvc;
import com.boarsoft.common.dao.PagedResult;

public interface SvcAppBiz {

	/**
	 * 查询发布指定服务的应用
	 * 
	 * @param svcId-应用id
	 * @param key-查询关键字
	 * @param orderBy-排序字段
	 * @param pageNo-页编号
	 * @param pageSize-页大小
	 * @return PagedResult<AppInfo>
	 */
	PagedResult<AppInfo> list(String svcId, String key, String orderBy, int pageNo, int pageSize);

	/**
	 * 查询发布了指定SVC的所有APP
	 * 
	 * @param svcId
	 * @return List<AppInfo>
	 */
	List<AppInfo> list(String svcId);

	/**
	 * 查询发布了指定SVC的所有指定状态的APP
	 * 
	 * @param svcId
	 * @return List<AppInfo>
	 */
	List<AppInfo> list(String svcId, short status);

	/**
	 * 获取给定id的AppSvc信息
	 * 
	 * @param id
	 * @return AppSvc
	 */
	AppSvc get(String id);

	/**
	 * 保存服务与应用或库包的关系
	 * 
	 * @param appId-应用id
	 * @param svcIds-服务id
	 */
	void add(String appId, String[] svcIds);

	/**
	 * 移除多条应用与服务的关系
	 * 
	 * @param appId-应用id
	 * @param svcIds-服务id
	 */
	void remove(String appId, String[] svcIds);

	/**
	 * 移除一条应用/库包与服务之间的关系
	 * 
	 * @param svcId-服务id
	 */
	void delete(String svcId);
}
